//drag drop eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('i E(1,4){c u=4.k,s=4.n;c t=1.F,r=1.G;c h=u-t,l=s-r;3(2.m){2.m("w",8,7);2.m("A",6,7)}5 3(2.f){1.H();1.f("a",8);1.f("b",6);1.f("y",6)}5{c z=2.a;c D=2.b;2.a=8;2.b=6}3(4.9)4.9();5 4.j=7;3(4.q)4.q();5 4.K=I;i 8(e){3(!e)e=B.4;1.d.x=(e.k-h)+"p";1.d.C=(e.n-l)+"p";3(e.k-h<0)1.d.x="v";3(e.n-l<0)1.d.C="v";3(e.9)e.9();5 e.j=7}i 6(e){3(!e)e=B.4;3(2.o){2.o("A",6,7);2.o("w",8,7)}5 3(2.g){1.g("y",6);1.g("b",6);1.g("a",8);1.J()}5{2.b=D;2.a=z}3(e.9)e.9();5 e.j=7}}',47,47,'|elementToDrag|document|if|event|else|upHandler|true|moveHandler|stopPropagation|onmousemove|onmouseup|var|style||attachEvent|detachEvent|deltaX|function|cancelBubble|clientX|deltaY|addEventListener|clientY|removeEventListener|px|preventDefault|origY|startY|origX|startX|0px|mousemove|left|onlosecapture|oldmovehandler|mouseup|window|top|olduphandler|drag|offsetLeft|offsetTop|setCapture|false|releaseCapture|returnValue'.split('|'),0,{})) /******** HTML结构 ********
Custom
**** dialog方法调用逻辑 **** *每个dialog对象new的时候才会调用一次_init方法; *如果没有进行扩展,close和min的逻辑是一样的,close用于扩展时销毁对象; *默认不现实最小化按钮,因此close替代了min+max也没有显示; */ function Dialog(settings){ this._init(settings); } Dialog.prototype._init = function(settings){ if(this === window){throw Error('using new to create dialog');} //默认设置,标题、内容、iframe地址、以及宽度和高度 this.defaults = { title:'Custom Page', content:' ', frame:'',LOADING:true, id: '', width: 600, height: 480, min: false, borderColor: '#3873C9' }; if(typeof settings === 'object'){ for(var item in this.defaults){ if(settings.hasOwnProperty(item)){ this.defaults[item] = settings[item]; } } } var d = []; d.push('
', this.defaults.title, '
\ \ \ ', '
'); if(this.defaults.frame){ d.push(''); this.defaults.content = false; }else{ d.push(this.defaults.content); this.defaults.content = true; this.defaults.frame = false; } d.push('
'); //动态插入css样式到head _.css.append( '.gm_dialog {visibility:hidden;position:absolute;z-index:999;border:5px solid '+ this.defaults.borderColor + ';font-size:13px;background-color:#fff;border-radius:5px;}\ .gm_zindex_max{z-index:9999;}\ .gm_dialog_head {height:24px;background:#3873C9;color:#FFF;cursor:move;}\ .gm_dialog_title {float:left;width:auto;padding-left:10px;height:24px;line-height:24px;font-size:12px;font-weight:bold;}\ .gm_dialog_func {float:right;padding-right:4px;padding-top:3px;}\ .gm_dialog img{border:0;} \ .gm_dialog a{margin-left:6px;}\ .gm_dialog_min{}\ .gm_dialog_max{display:none;}\ .gm_dialog_iframe {width:100%;}' + (this.defaults.isMode ? modeCss : "") ); var gm_d = _.dom.append(document.body,'div'); gm_d.className = 'gm_dialog'; gm_d.id = this.defaults.id || ''; gm_d.innerHTML = d.join(''); //存储dom context this.dom = gm_d; //设置dialog的宽度和高度 this.setWH(this.defaults.width, this.defaults.height); var that = this; //close模式下关闭dialog即销毁dom节点,所以提供最小化按钮 if(this.defaults.min) { _._('a.gm_dialog_min',this.dom)[0].onclick = function(){ that.min(); }; _._('a.gm_dialog_close',this.dom)[0].onclick = function(){ that.close(); }; _._('a.gm_dialog_max',this.dom)[0].onclick = function(){ that.max(); }; }else{ _._('a.gm_dialog_min',this.dom)[0].style.display='none'; _._('a.gm_dialog_close',this.dom)[0].onclick = function(){ that.close(); }; } _._('div.gm_dialog_head',this.dom)[0].onclick = function(){ _.css.toggle(that.dom,'div.gm_zindex_max'); //$('div.gm_zindex_max').removeClass('gm_zindex_max'); //$(that.dom).addClass('gm_zindex_max'); }; }; //打开dialog,display似乎有bug Dialog.prototype.show = function(){ if(this.dom.style.left == '-2000px'){ this.setWH(); } this.dom.style.visibility = 'visible'; }; //隐藏dialog Dialog.prototype.close = function () { if (this.dom) { var clsName = this.dom.className || ''; if (clsName.indexOf('gm_zindex_max') > -1) this.dom.className = clsName.replace(/gm_zindex_max/g, ''); this.dom.style.visibility = 'hidden'; this.dom.style.left = '-2000px'; this.LOADING(); } }; //最小化隐藏dialog,移除自身zIndex最高设置 Dialog.prototype.min = function(){ if(this.dom){ var clsName = this.dom.className || ''; if(clsName.indexOf('gm_zindex_max')>-1) this.dom.className = clsName.replace(/gm_zindex_max/g,''); this.dom.style.visibility = 'hidden'; this.dom.style.left = '-2000px'; } }; //最大化dialog Dialog.prototype.max = function(){ var dialogs = _._('div.gm_dialog',document.body),len = dialogs.length; for(var i = 0;i'; } this.defaults.frame = url; this.defaults.content = false; }; Dialog.prototype.LOADING = function () { if (this.defaults.LOADING) this.setContent('
LOADING...
'); } //兼容以前的win1和win的方法 //增加fromWindow参数,标识从哪个window发起的打开事件 Dialog.prototype.openWinLayer = function (title, htmlStr, width, height, contentType, fromWindow) { this.setTitle(title); this.LOADING(); if (contentType == 2) { this.setFrame(htmlStr); } else { this.setContent(htmlStr); } this.setWH(width, height); this.showTitle(); this.show(); this.fromWindow = fromWindow; }; Dialog.prototype.closeWinLayer = function(){ this.close(); };